#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
财联社电报采集系统主入口
"""

import os
import sys
import argparse
from pathlib import Path

# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from core.collector import CailianPressCollector
from core.scheduler import TelegramScheduler
from web.web_app import run_web_app
from utils.utils import setup_logger


def main():
    """主函数"""
    # 设置日志
    setup_logger('app', 'logs/app.log')
    
    # 解析命令行参数
    parser = argparse.ArgumentParser(description='财联社电报采集系统')
    parser.add_argument('--mode', type=str, choices=['once', 'schedule', 'web', 'view'], 
                        default='once', help='运行模式：once(单次采集)、schedule(定时采集)、web(Web界面)、view(查看数据)')
    parser.add_argument('--interval', type=int, default=1, help='定时采集间隔(分钟)，默认1分钟')
    parser.add_argument('--limit', type=int, default=10, help='查看数据时显示的条数，默认10条')
    args = parser.parse_args()
    
    # 根据模式执行不同的操作
    if args.mode == 'once':
        # 单次采集模式
        collector = CailianPressCollector()
        collector.collect_and_save()
        
    elif args.mode == 'schedule':
        # 定时采集模式
        scheduler = TelegramScheduler()
        scheduler.run_scheduler(args.interval)
        
    elif args.mode == 'web':
        # Web界面模式
        run_web_app()
        
    elif args.mode == 'view':
        # 查看数据模式
        collector = CailianPressCollector()
        collector.display_latest_telegrams(args.limit)
    

if __name__ == '__main__':
    main()